import { Navigate, useLocation } from 'react-router-dom';

import { useSelector } from 'react-redux';
import { RootState } from '@/store';
import {searchRoute} from "@/utils/util"
import { JSX } from 'react';
// import { HOME_URL } from "@/config/config";
function AutnToken(props: { children: JSX.Element }) {
    const userData=useSelector((state:RootState) => state.getDataConfig)
  
    const {token}=userData
    // 获取接口中的路由 一维数组
    // const { authRouter } = useSelector((state: any) => state.auth);
    // rootRouter
    const rootRouter: never[]=[] //路由嘻嘻
    // 获取当前路由信息
    const { pathname } = useLocation();
    // 获取当前路由对应的信息
    const route = searchRoute(pathname, rootRouter);

    // * 判断当前路由是否需要访问权限(不需要权限直接放行)
	if (!route.meta?.requiresAuth) return props.children;
    // * 判断是否有Token
	if (!token) return <Navigate to="/login" replace />;
    // * Static Router(静态路由，必须配置首页地址，否则不能进首页获取菜单、按钮权限等数据)，获取数据的时候会loading，所有配置首页地址也没问题
	// const staticRouter = [HOME_URL, "/405"];
	// const routerList = authRouter.concat(staticRouter);
    // * 如果访问的地址没有在路由表中重定向到405页面
	// if (routerList.indexOf(pathname) == -1) return <Navigate to="/405" />;
    // * 当前账号有权限返回 Router，正常访问页面
	return props.children;
}

export default AutnToken